home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Surfer: Getting Started
/
Internet Surfer - Getting Started (Wayzata Technology)(7231)(1995).bin
/
pc
/
mac
/
bonus
/
peter_le
/
finger_1
/
tokens
/
macenvy.p
< prev
next >
Wrap
Text File
|
1991-11-26
|
7KB
|
274 lines
unit MACENVY;
interface
uses
ParameterDef;
procedure Main (var p: parameterRecord);
implementation
uses
NumSubs;
const
AMegaByte = 1024 * 1024;
procedure Main (var p: parameterRecord);
type
shortStr = string[15];
function GDecStr (selector: OSType): shortStr;
var
err: OSErr;
response: longint;
begin
GDecStr := '';
err := Gestalt(selector, response);
if err = noErr then begin
GDecStr := DecStr(response);
end; (* if *)
end; (* GDecStr *)
function GMemStr (selector: OSType): Str31;
var
err: OSErr;
response: longint;
begin
GMemStr := '';
err := Gestalt(selector, response);
if err = noErr then begin
if (response div 1024) < 1024 then begin
GMemStr := concat(DecStr(response div 1024), 'K (', HexL(response), ')');
end
else begin
GMemStr := concat(DecStr(response div 1024 div 1024), 'M (', HexL(response), ')');
end; (* if *)
end; (* if *)
end; (* GMemStr *)
function GVerStr (selector: OSType): shortStr;
var
err: OSErr;
response: longint;
begin
GVerStr := '';
err := Gestalt(selector, response);
if err = noErr then begin
GVerStr := concat(DecStr(band(bsr(response, 8), $F)), '.', DecStr(band(bsr(response, 4), $F)), '.', DecStr(band(bsr(response, 0), $F)));
end; (* if *)
end; (* GVerStr *)
procedure AddChar (ch: char);
begin
if p.offset < p.hlength then begin
BlockMove(ptr(longint(@ch) + 1), ptr(longInt(p.fingeroutput^) + p.offset), 1);
p.offset := p.offset + 1;
end;
end; (* AddChar *)
var
response: longint;
count: integer;
i, row, col: integer;
bit: integer;
err: OSErr;
chh: CharsHandle;
begin
p.returnValue^ := '';
if p.param^ = 'APPLETALK' then begin
p.returnValue^ := GDecStr(gestaltAppleTalkVersion);
end; (* if *)
if p.param^ = 'FPU' then begin
err := Gestalt(gestaltFPUType, response);
if err = noErr then begin
case response of
gestalt68881:
p.returnValue^ := '68881';
gestalt68882:
p.returnValue^ := '68882';
gestalt68040FPU:
p.returnValue^ := '68040 FPU (Aren''t you jealous?)';
otherwise
p.returnValue^ := 'unknown';
end; (* case *)
end; (* if *)
end; (* if *)
if p.param^ = 'KEYBOARD' then begin
err := Gestalt(gestaltKeyboardType, response);
if err = noErr then begin
case response of
gestaltMacKbd:
p.returnValue^ := 'Macintosh Keyboard';
gestaltMacAndPad:
p.returnValue^ := 'Macintosh Keyboard and KeyPad';
gestaltMacPlusKbd:
p.returnValue^ := 'Macintosh Plus Keyboard';
gestaltExtADBKbd:
p.returnValue^ := 'Extended ADB Keyboard';
gestaltStdADBKbd:
p.returnValue^ := 'Standard ADB Keyboard';
gestaltPrtblADBKbd:
p.returnValue^ := 'Portable Standard ADB Keyboard';
gestaltPrtblISOKbd:
p.returnValue^ := 'Portable ISO ADB Keyboard';
gestaltStdISOADBKbd:
p.returnValue^ := 'ISO Standard Keyboard';
gestaltExtISOADBKbd:
p.returnValue^ := 'ISO Extended Keyboard';
gestaltADBKbdII:
p.returnValue^ := 'ADB Keyboard II';
gestaltADBISOKbdII:
p.returnValue^ := 'ISO ADB Keyboard II';
otherwise
p.returnValue^ := 'unknown';
end; (* case *)
end; (* if *)
end; (* if *)
if p.param^ = 'LOWMEMORY' then begin
p.returnValue^ := GDecStr(gestaltLowMemorySize);
end; (* if *)
if (p.param^ = 'RAMSIZE') or (p.param^ = 'LOGICALRAMSIZE') then begin
p.returnValue^ := GMemStr(gestaltLogicalRAMSize);
end; (* if *)
if p.param^ = 'MACHINE' then begin
err := Gestalt(gestaltMachineType, response);
if err = noErr then begin
GetIndString(p.returnValue^, kMachineNameStrID, response);
end; (* if *)
end; (* if *)
if p.param^ = 'ICON' then begin
err := Gestalt(gestaltMachineIcon, response);
if err = noErr then begin
chh := CharsHandle(GetResource('ICN#', LoWrd(response)));
if chh <> nil then begin
for row := 0 to 31 do begin
for col := 0 to 3 do begin
for bit := 7 downto 0 do begin
if btst(ord(chh^^[row * 4 + col]), bit) then begin
AddChar('X');
AddChar('X');
end
else begin
AddChar(' ');
AddChar(' ');
end; (* if *)
end; (* for *)
end; (* for *)
AddChar(chr(13));
AddChar(chr(10));
end; (* for *)
end; (* if *)
end; (* if *)
end; (* if *)
if p.param^ = 'MMU' then begin
err := Gestalt(gestaltMMUType, response);
if err = noErr then begin
case response of
gestalt68851:
p.returnValue^ := '68851';
gestalt68030MMU:
p.returnValue^ := '68030 MMU';
gestalt68040MMU:
p.returnValue^ := '68040 MMU';
otherwise
p.returnValue^ := 'unknown';
end; (* case *)
end; (* if *)
end; (* if *)
if p.param^ = 'PAGESIZE' then begin
p.returnValue^ := GDecStr(gestaltLogicalPageSize);
end; (* if *)
if p.param^ = 'CPU' then begin
err := Gestalt(gestaltProcessorType, response);
if err = noErr then begin
case response of
gestalt68000:
p.returnValue^ := '68000';
gestalt68010:
p.returnValue^ := '68010 (Yes I know it''s obscure but I love it anyway)';
gestalt68020:
p.returnValue^ := '68020';
gestalt68030:
p.returnValue^ := '68030';
gestalt68040:
p.returnValue^ := '68040';
otherwise
p.returnValue^ := 'unknown';
end; (* case *)
end; (* if *)
end; (* if *)
if p.param^ = 'QUICKDRAW' then begin
p.returnValue^ := GVerStr(gestaltQuickdrawVersion);
end; (* if *)
if (p.param^ = 'REALRAMSIZE') or (p.param^ = 'PHYSICALRAMSIZE') then begin
p.returnValue^ := GMemStr(gestaltPhysicalRAMSize);
end; (* if *)
if p.param^ = 'ROMSIZE' then begin
p.returnValue^ := GMemStr(gestaltROMSize);
end; (* if *)
if p.param^ = 'ROM' then begin
err := Gestalt(gestaltROMVersion, response);
p.returnValue^ := HexW(LoWrd(response));
end; (* if *)
if p.param^ = 'SLOTS' then begin
err := Gestalt(gestaltNuBusConnectors, response);
if err = noErr then begin
count := 0;
for i := 0 to 15 do begin
if btst(response, i) then begin
count := count + 1;
end; (* if *)
end; (* for *)
p.returnValue^ := DecStr(count);
end; (* if *)
end; (* if *)
if p.param^ = 'SOUND' then begin
err := Gestalt(gestaltSoundAttr, response);
if err = noErr then begin
if btst(response, gestaltStereoCapability) then begin
p.returnValue^ := 'Stereo';
end
else begin
p.returnValue^ := 'Mono';
end; (* if *)
p.returnValue^ := concat(p.returnValue^, ' sound');
if btst(response, gestaltHasSoundInputDevice) then begin
p.returnValue^ := concat(p.returnValue^, ' with sound input');
end;
end; (* if *)
end; (* if *)
if p.param^ = 'SYSTEM' then begin
p.returnValue^ := GVerStr(gestaltSystemVersion);
end; (* if *)
if p.param^ = 'TEXTEDIT' then begin
p.returnValue^ := GDecStr(gestaltTextEditVersion);
end; (* if *)
if p.param^ = 'GESTALT' then begin
p.returnValue^ := GDecStr(gestaltVersion);
end; (* if *)
end;
end. (* MACENVY *)